package com.heze.xunhuan.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.heze.xunhuan.entity.User;
import com.heze.xunhuan.vo.UserVO;

/**
 * 用户服务接口
 *
 * @author heze-xunhuan
 */
public interface UserService extends IService<User> {

    /**
     * 根据OpenID获取用户
     */
    User getByOpenid(String openid);

    /**
     * 创建或更新用户
     */
    User createOrUpdateUser(String openid, String unionid, String nickname, String avatar, Integer gender);

    /**
     * 绑定手机号
     */
    String bindPhone(Long userId, String code);

    /**
     * 获取用户信息
     */
    UserVO getUserInfo(Long userId);

    /**
     * 更新用户信息
     */
    void updateUserInfo(Long userId, UserVO userVO);

    /**
     * 检查发布限制
     */
    Boolean checkPostLimit(Long userId);

    /**
     * 增加发布数量
     */
    void incrementPostCount(Long userId);

    /**
     * 重置每日发布数量
     */
    void resetDailyPostCount();
}

